/bufferIO
Reader.ts
ReaderTools.ts
/core
Long.ts
format.ts
/headers ...
/headers/enums
DataDirectoryKind.ts
DllCharacteristics.ts
ImageCharacteristics.ts
MZSignature.ts
Machine.ts
PEMagic.ts
PESignature.ts
SectionCharacteristics.ts
Subsystem.ts
AddressRange.ts
DosHeader.ts
OptionalHeader.ts
PEHeader.ts
SectionHeader.ts
/imports
/imports/knockout
knockout-3.0.0.js
/io
/layout
pe.css
pefile.html
/sample
sample.js
/typings
knockout.d.ts
LoaderContext.ts
PEFile.ts
io.ts
pe.html
pe.ts
1
module pe.headers {
2
 
3
  export class AddressRange {
4
    constructor (public address?: number, public size?: number) {
5
      if (!this.address)
6
        this.address = 0;
7
      if (!this.size)
8
        this.size = 0;
9
    }
10
 
11
    mapRelative(offset: number): number {
12
      var result = offset - this.address;
13
      if (result >= 0 && result < this.size)
14
        return result;
15
      else
16
        return -1;
17
    }
18
 
19
    toString() { return this.address.toString(16).toUpperCase() + ":" + this.size.toString(16).toUpperCase() + "h"; }
20
  }
21
 
22
  export class AddressRangeMap extends AddressRange {
23
    constructor(address?: number, size?: number, public virtualAddress?: number) {
24
      super(address, size);
25
 
26
      if (!this.virtualAddress)
27
        this.virtualAddress = 0;
28
    }
29
 
30
    toString() { return this.address.toString(16).toUpperCase() + ":" + this.size.toString(16).toUpperCase() + "@" + this.virtualAddress + "h"; }
31
  }
32
 
33
}